use tauri::{Manager, Window};
use serde::Serialize;

// 分类数据结构（匹配图像中的选项样式）
#[derive(Clone, Serialize)]
struct Category {
    id: String,
    name: String,  // 对应图像中的"图形图像"等分类名称
}

// 分类数据加载（从public/categories.json读取）
#[tauri::command]
fn load_categories() -> Vec<Category> {
    let data = include_str!("../../public/categories.json");
    serde_json::from_str(data).expect("分类数据格式错误")
}

// 深度账号绑定（匹配图像中的蓝色边框认证流程）
#[tauri::command]
fn bind_deepin_account(window: Window) {
    // 实现逻辑参考之前的deepin_id.rs
}

// 令牌自动刷新服务（每5分钟检测）
#[tauri::command]
async fn start_token_refresher(app: AppHandle) {
    // 具体实现参考之前的deepin_id.rs
}

fn main() {
    tauri::Builder::default()
        // 注册所有命令（包含分类加载+账号绑定）
        .invoke_handler(tauri::generate_handler![
            load_categories,
            bind_deepin_account,
            start_token_refresher
        ])
        // 初始化前端JS（匹配图像中的交互效果）
        .setup(|app| {
            let window = app.get_window("main").unwrap();
            window.eval(include_str!("../src/app.js")).unwrap();
            Ok(())
        })
        .run(tauri::generate_context!())
        .expect("应用启动失败");
}